
/**
 * @version			$Id$
 * @create 			2012-8-30 16:04:14 By xjiujiu
 * @package 		validate
 * @copyRight 		Copyright (c) 2011-2012 http://www.xjiujiu.com.All right reserved
 * HongJuZi Framework
 */

 /**
  * HHJsLib的验证基础库 
  * 
  * 常用的空值检测，长度判断，邮箱验证等 
  * 
  * @author xjiujiu <xjiujiu@foxmail.com>
  * @package validate
  * @since 1.0.0
  */
 (function($) {
     var HHValidate     = {

        /**
         * 验证当前对象是否为空 
         * 
         * 包括对空对象，空对象的检测 
         * 
         * @author 			xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  Object target 需要检测的对象
         * @param  String name 当前对象的名称
         * @return boolean
         * @throws ValidateException
         */
        isEmpty: function(target, name) {
            if(typeof target == 'undefined' || !target) {
	            throw name + '不能为空！';
            }
        },
        
        /**
         * 验证字符串长度 
         * 
         * 对当前串进行长度验证 ,用法：
         * <code>
         *    HHJsLib.validateStrLen("xjiujiu", "用户名", 1, 20); //ok
         *    HHJsLib.validateStrLen("", "用户名", 1, 20); //ValidateException
         * </code>
         * 
         * @author 			xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  String target 需要验证的字串
         * @param  String name 当前字串的名称
         * @param  int min 最少长度
         * @param  int max 最大长度
         * @return void
         * @throws ValidateException
         */
        validateStrLen: function(target, name, min, max) {
            if(target.length < min || max < target.length) {
                throw name + '长度不符合要求，要求字符范围：' + min + '~' + max + "。";
            }
        },

        /**
         * 验证当前的邮箱地址是否合法 
         * 
         * 对已知的邮箱地址进行合法性验证，用法如：
         * <code>
         *   HHJsLib.validateEmail("xjiujiu@foxmai.com"); //ok
         *   HHJsLib.validateEmail("aa@aaa"); //ValidateException
         * </code>
         * 
         * @author xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  String target 需要验证的目标邮箱地址
         * @return void
         * @throws ValidateException 
         */
        validateEmail: function(target) {
            var emailRegExp     = /^(?:[a-zA-Z0-9]+[_\-\+\.]?)*[a-zA-Z0-9]+@(?:([a-zA-Z0-9]+[_\-]?)*[a-zA-Z0-9]+\.)+([a-zA-Z]{2,})+$/i; 
            if(!emailRegExp.test(target)) {
                throw '邮箱地址不合法！正确格式为：example@example.com。';
            }
        }
     };
     //扩展到HHJsLib库中
     HHJsLib.extend(HHValidate);
 })(jQuery);
